package io.renren.modules.rps.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.renren.common.validator.group.AddGroup;
import io.renren.common.validator.group.UpdateGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import java.io.Serializable;
import java.util.Date;


/**
 * 中心月报管理
 *
 * @author HuYJ huyongjie@qone-inst.com
 * @since 1.0.0 2022-10-18
 */
@Data
@ApiModel(value = "中心月报管理")
public class CenterMonthDTO implements Serializable {
    private static final long serialVersionUID = 1L;

	@ApiModelProperty(value = "id")
	@Null(message="{id.null}", groups = AddGroup.class)
	@NotNull(message="{id.require}", groups = UpdateGroup.class)
	private Long id;

	@ApiModelProperty(value = "统计时间")
	@DateTimeFormat(pattern = "yyyy-MM")
	@JsonFormat(pattern = "yyyy-MM",timezone = "GMT+8")
	private Date countTime;

	@ApiModelProperty(value = "门诊收入")
	private Double clinicIncome;

	@ApiModelProperty(value = "住院收入")
	private Double hospitalIncome;

	@ApiModelProperty(value = "门诊人次")
	private Integer clinicPatientsNumber;

	@ApiModelProperty(value = "出院人次")
	private Integer hospitaloutPatientsNumber;

	@ApiModelProperty(value = "入院人次")
	private Integer inPatientsNumber;

	@ApiModelProperty(value = "结算人次")
	private Integer orderPatientsNumber;

	@ApiModelProperty(value = "在院人次")
	private Integer onPatientsNumber;

	@ApiModelProperty(value = "出区未结人次")
	private Integer outPatientsNumber;

	@ApiModelProperty(value = "核酸检测人次")
	private Integer nucleicacidCheckNumber;

	@ApiModelProperty(value = "开放床位数")
	private Integer openBedNumber;

	@ApiModelProperty(value = "员工数")
	private Integer patientNumber;

	@ApiModelProperty(value = "技师数")
	private Integer technicianNumber;

	@ApiModelProperty(value = "护士数")
	private Integer nurseNumber;

	@ApiModelProperty(value = "住院手术例数")
	private Integer surgeryNumber;

	@ApiModelProperty(value = "住院三四级手术例数")
	private Integer surgeryLevel34Number;

	@ApiModelProperty(value = "实际占用总床日")
	private Integer bedDays;

	@ApiModelProperty(value = "开放床位使用率")
	private Double bedOccupancy;

	@ApiModelProperty(value = "平均住院日")
	private Integer hospitalizationRate;

	@ApiModelProperty(value = "门诊次均费用")
	private Double clinicFeeEachtime;

	@ApiModelProperty(value = "住院次均费用")
	private Double hospitalFeeEachtime;

	@ApiModelProperty(value = "HIS发生制收入")
	private Double hisAccrualIncome;

	@ApiModelProperty(value = "非医保患者收入")
	private Double nonmedicarePatientsIncome;

	@ApiModelProperty(value = "非医保收入占比")
	private Double nonmedicaresIncomeRatio;

	@ApiModelProperty(value = "药品收入")
	private Double medicineIncome;

	@ApiModelProperty(value = "材料收入")
	private Double materialIncome;

	@ApiModelProperty(value = "检查检验收入")
	private Double testIncome;

	@ApiModelProperty(value = "诊疗收入")
	private Double diagnosisIncome;

	@ApiModelProperty(value = "诊疗收入占比")
	private Double diagnosisIncomeRatio;

	@ApiModelProperty(value = "创建时间")
	@JsonProperty(access = JsonProperty.Access.READ_ONLY)
	private Date createDate;

}